/**
 *   _                                                          _   
 *  | | ____ _ _ __ _ __ ___   __ _  ___           _ __ ___ ___| |_ 
 *  | |/ / _` | '__| '_ ` _ \ / _` |/ __|  _____  | '__/ _ | __| __|
 *  |   < (_| | |  | | | | | | (_| | (__  |_____| | | |  __|__ \ |_ 
 *  |_|\_\__,_|_|  |_| |_| |_|\__,_|\___|         |_|  \___|___/\__|
 *         
 *  Copyright  2011 Kondra, Inc. 
 * 
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at:
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

package com.kondra.karmac.rest
{
   import flash.display.LoaderInfo;
   import flash.events.Event;
   import flash.net.URLVariables;
   import flash.utils.ByteArray;
   
   /**
    * The <code>ServiceResult</code> class is used to pass result data from a service
    * request to the service notification handler methods. 
    * 
    * @author Jared Kaplan
    */ 
   public class ServiceResult
   {
      private var m_event:Event;
      private var m_data:Object;
      private var m_source:Object;
      private var m_errors:Array;
      
      public function ServiceResult( data:Object = null, source:Object = null, event:Event = null, errors:Array = null )
      {
         m_data = data;
         m_source = source;
         m_event = event;
         m_errors = errors;
      }
      
      /**
       * Returns a string representation of the errors returned by the service request.
       */ 
      public function getErrorMessages() : String {
         return m_errors != null ? m_errors.join( ";" ) : "";
      }
      
      //
      // getter/setter methods
      //
      public function get event() : Event { return m_event; }
      public function get data() : Object { return m_data; }
      public function get source() : Object { return m_source; }
      public function get errors() : Array { return m_errors; }
   }
}